package org.dromara.tearoom.domain.enums;


import lombok.AllArgsConstructor;
import lombok.Getter;
import org.dromara.common.core.enums.ArrayValuable;

import java.util.Arrays;

/**
 * IoT 设备种类
 *
 * @author ckj
 */
@AllArgsConstructor
@Getter
public enum IotDeviceClassEnum implements ArrayValuable<Integer> {

    CHOPPER(1, "断路器"),
    GATEWAY(2, "网关");

    /**
     * 类型
     */
    private final Integer type;

    /**
     * 描述
     */
    private final String description;

    public static final Integer[] ARRAYS = Arrays.stream(values()).map(IotDeviceClassEnum::getType).toArray(Integer[]::new);

    @Override
    public Integer[] array() {
        return ARRAYS;
    }

    /**
     * 判断是否是断路器
     *
     * @param type 类型
     * @return 是否是网关
     */
    public static boolean isChopper(Integer type) {
        return CHOPPER.getType().equals(type);
    }

    /**
     * 判断是否是网关设备
     *
     * @param type 类型
     * @return 是否是网关设备
     */
    public static boolean isGateway(Integer type) {
        return GATEWAY.getType().equals(type);
    }

}
